public class BackspaceStringCompare {
    public boolean backspaceCompare(String s, String t) {
        return compareStr(s).equals(compareStr(t));
    }

    public String compareStr(String s) {
        StringBuilder ret = new StringBuilder();
        char[] ch = s.toCharArray();
        for (char c : ch) {
            // 只有 ret 长度大于 0 时(即栈不为空时), 才能拿栈顶元素和当前元素进行比较
            if (c == '#') {
                // 如果当前元素为 # 字符, 则出栈
                if(ret.length() > 0) {
                    // 注意题中tip: 对空文本输入 # 字符, 则文本继续为空
                    // 因此如果ret为长度已经为 0 了, 但依旧遇到 # 字符, 直接跳过去找下一个字符
                    ret.deleteCharAt(ret.length() - 1);
                }
            } else {
                // 如果不为, 则入栈
                ret.append(c);
            }
        }
        return ret.toString();
    }
}
